#include<stdio.h>

void merge(int* nums1, int m, int* nums2, int n) {
   /* int tmp[6];
    int begin1 = 0, begin2 = 0, i = 0;
    while (begin1 < m && begin2 < n) {
        if (nums1[begin1] < nums2[begin2]) {
            tmp[i++] = nums1[begin1++];
        }
        else {
            tmp[i++] = nums2[begin2++];
        }
    }
    while (begin1 < m) {
        tmp[i++] = nums1[begin1++];
    }
    while (begin2 < n) {
        tmp[i++] = nums2[begin2++];
    }
    for (i = 0; i < m + n; ++i) {
        nums1[i] = tmp[i];
    }*/
    int begin1 = m - 1, begin2 = n - 1;
    int tail = m + n - 1;
    while (begin1 >= 0 && begin2 >= 0) {
        if (nums1[begin1] > nums2[begin2]) {
            nums1[tail--] = nums1[begin1--];
        }
        else {
            nums1[tail--] = nums2[begin2--];
        }
    }
    while (begin2 >= 0) {
        nums1[tail--] = nums2[begin2--];
    }
}

int main() {
    int nums1[6] = { 1, 2, 3 };
    int nums2[3] = { 2, 5, 6 };
    merge(nums1, 3, nums2, 3);
    for (int i = 0; i < 6; i++) {
        printf("%d ", nums1[i]);
    }
    return 0;
}